library("syuzhet")
## Warning: package 'syuzhet' was built under R version 4.2.2
library("wordcloud")
## Warning: package 'wordcloud' was built under R version 4.2.2
## Loading required package: RColorBrewer
library("plotly")
## Warning: package 'plotly' was built under R version 4.2.2
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 4.2.2
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
library("tm")
## Warning: package 'tm' was built under R version 4.2.2
## Loading required package: NLP
##
## Attaching package: 'NLP'
## The following object is masked from 'package:ggplot2':
##
## annotate
library("tidytext")
## Warning: package 'tidytext' was built under R version 4.2.2
library("dplyr")
## Warning: package 'dplyr' was built under R version 4.2.2
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library("RColorBrewer")
library("ggplot2")
library("magrittr")
library("stringr")
## Warning: package 'stringr' was built under R version 4.2.2
library("twitteR")
## Warning: package 'twitteR' was built under R version 4.2.2
##
## Attaching package: 'twitteR'
## The following objects are masked from 'package:dplyr':
##
## id, location
CONSUMER_SECRET <- "c4lW91jDaRUgzFAvOr0YleNYVEm17ZTnEHnMsvlDcjKSJnBJXg"
CONSUMER_KEY <- "pgjt5UWX2uzuK6qRwHowEPPXq"
ACCESS_SECRET <- "txachtOgZ7L0dyj9vAswZkfGjtJMfU4fVvRdAyEo3jNg0"
ACCESS_TOKEN <- "1594899110103986176-QoH3VZuNGyLd8RBuY6cnFR4lN6obA4"
setup_twitter_oauth(consumer_secret = CONSUMER_SECRET,
consumer_key = CONSUMER_KEY,
access_secret = ACCESS_SECRET,
access_token = ACCESS_TOKEN)
## [1] "Using direct authentication"
#get 10000 tweets excluding retweets.
trendTweets <- searchTwitter("Ukraine", n = 10000,lang = "en",
since = "2022-11-24",
until = "2022-12-30",retryOnRateLimit=120)
ukraineDF <- twListToDF(trendTweets)
#save and load
save(ukraineDF, file = "ukraineDF.Rdata")
load(file = "ukraineDF.Rdata")
saple_data <- sapply(ukraineDF, function(x) sum(is.na(x)))
#Subsetting dplyr
ukraine_tweets <- ukraineDF %>%
select(screenName,text,created, isRetweet) %>% filter(isRetweet == FALSE)
save(ukraine_tweets, file = "ukraine_tweetsF.Rdata")
load(file = "ukraine_tweetsF.Rdata")
#Arrange data
ukraine_tweets %>%
group_by(1) %>%
summarise(max = max(created), min = min(created))
ukrainedata <- ukraine_tweets %>% mutate(Created_At_Round = created %>%
round(units = 'hours') %>% as.POSIXct())
slava <- ukraine_tweets %>% pull(created) %>% min()
ukrani <- ukraine_tweets %>% pull(created) %>% max()
#Plotting tweets using ggplot and library
Slavaplot <- ggplot(ukrainedata, aes(x = Created_At_Round)) +
geom_histogram(aes(fill = ..count..)) +
theme(legend.position = "right") +
xlab("Time") + ylab("Number of tweets") +
scale_fill_gradient(low = "grey", high = "blue")
Slavaplot %>% ggplotly()
## Warning: The dot-dot notation (`..count..`) was deprecated in ggplot2 3.4.0.
## ℹ Please use `after_stat(count)` instead.
## ℹ The deprecated feature was likely used in the ggplot2 package.
## Please report the issue at <]8;;https://github.com/tidyverse/ggplot2/issueshttps://github.com/tidyverse/ggplot2/issues]8;;>.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
#Retweets
ukraineretweets <- ukraineDF %>%
select(screenName,text,created, isRetweet) %>% filter(isRetweet == TRUE)
#Arranging the data
ukraineretweets %>%
group_by(1) %>%
summarise(max = max(created), min = min(created))
ukraineretweets2 <- ukraineretweets %>% mutate(Created_At_Round =
created %>% round(units = 'hours') %>% as.POSIXct())
slava <- ukraineretweets %>% pull(created) %>% min()
ukrani <- ukraineretweets %>% pull(created) %>% max()
#Plotting the retweets using gglplot and library
zelensky <- ggplot(ukraineretweets2, aes(x = Created_At_Round)) +
geom_histogram(aes(fill = ..count..)) +
theme(legend.position = "right") +
xlab("Time") + ylab("Number of tweets") +
scale_fill_gradient(low = "yellow", high = "blue")
zelensky %>% ggplotly()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.